home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 4 / Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso / Pearls / text / faq / bonus / faq_report.rexx < prev    next >
OS/2 REXX Batch file  |  1996-10-07  |  2KB  |  87 lines

  1. /*  ARexx script
  2.     for :Pearls/text/FAQ on CD "Meeting Pearls III"
  3.     scanning and reporting
  4.     $VER: faq_report.rexx 1.3 (08.10.96) ©1995, 96 Khamsonh Marcel Khounlivong
  5.     */
  6.  
  7. OPTIONS RESULTS
  8.  
  9. PARSE ARG unit .
  10. SIGNAL OFF error
  11. SIGNAL OFF failure
  12. SIGNAL ON break_c
  13.  
  14. CALL AddLib('rexxsupport.library',5,-30)
  15.  
  16. unit = Strip(unit)
  17.  
  18. IF Word(StateF(unit),1) == DIR THEN DO
  19.     sdir = Strip(Strip(unit),t,'/')'/'
  20.     /* SAY 'Creating filelist' */
  21.     ADDRESS command 'List >temp ALL FILES LFORMAT %p%n "'sdir'"'
  22.     unit = 'temp'
  23.     END
  24.  
  25. filelist = Strip(Strip(unit),t,'/')
  26. IF ~Open(fin,filelist,r) THEN DO
  27.     SAY 'Keywordlist-Open-Error'
  28.     EXIT 20
  29.     END
  30.  
  31. /* SAY 'Striping files from' keywordlist '...' */
  32. DO FOREVER
  33.     file = ReadLn(fin)
  34.     IF (Eof(fin) & (file == '')) THEN LEAVE
  35.     faq = Word(file,Words(file))
  36.     CALL report_file
  37.     END
  38.  
  39. report_file:
  40.     arcname     = ""
  41.     arcnames    = "Archive-Name: Archive-name:"
  42.     date        = ""
  43.     dates       = "Date:"
  44.     log         = ""
  45.     string      = ""
  46.     months      = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
  47.     days        = "Mon Tue Wed Thu Fri Sat Sun"
  48.  
  49.     IF ~open(file,faq,r) THEN log = '' || faq "can't open"
  50.     ELSE DO
  51.         CALL scan_word
  52.         CALL scan_word
  53.         CALL Close(file)
  54.  
  55.         /*  easy date format TO use an equalation */
  56.         IF (Find(days,Strip(Word(date,1),,',')) ~= 0) THEN
  57.             date = SubStr(date, WordIndex(date,2))
  58.  
  59.         day   = Right(Word(date,1),2,'0')
  60.         month = Right(Find(months,Word(date,2)),2,'0')
  61.         year  = Right(Word(date,3),2)
  62.  
  63.         IF (arcname ~= "" & date ~= "") THEN
  64.             SAY Left(arcname,60) year || month || day faq
  65.         ELSE SAY ''faq "missing keywords (date or archive name)"
  66.         END
  67.     RETURN
  68.  
  69. scan_word:
  70.     DO UNTIL (string ~= "")
  71.         string = ReadLn(file)
  72.         END
  73.     DO WHILE (string ~= "")
  74.         string = Translate(string,' ','09'x)
  75.         IF (arcname ~= "" & date ~= "") THEN LEAVE
  76.         first = Strip(Word(string,1))
  77.         SELECT
  78.             WHEN (Find(arcnames, first) ~= 0) THEN
  79.                 arcname = SubStr(string,WordIndex(string,2))
  80.             WHEN (Find(dates, first) ~= 0) THEN
  81.                 date = SubStr(string,WordIndex(string,2))
  82.             OTHERWISE ;
  83.             END
  84.         string = ReadLn(file)
  85.         END
  86.     RETURN
  87.